package com.qqtech.qquan.community.service;

import java.util.List;

import com.qqtech.core.frame.model.PageOrder;
import com.qqtech.core.frame.service.BaseService;
import com.qqtech.qquan.community.model.CommunityJoin;
import com.qqtech.qquan.community.model.CommunityJoinQuery;
import com.qqtech.qquan.community.model.CommunityJoinVo;

public interface CommunityJoinService extends BaseService<CommunityJoin> {
	/**
	 * 加入社区，用户id，社区id
	 * @param userId
	 * @param communityId
	 * @return
	 */
	int handleJoin(Integer userId,Integer communityId);
	/**
	 * 左连接base表
	 * @param userId
	 * @return
	 */
	List<CommunityJoinVo> queryLeftBase(CommunityJoinQuery communityJoinQuery);
	/**
	 * 我加入的社区ids
	 * @param userId
	 * @return
	 */
	List<Integer> queryMyCommuntiyIds(Integer userId);
	/**
	 * 获取第一个对象
	 * @param communityJoinQuery
	 * @param pageable
	 * @return
	 */
	CommunityJoinVo getFirstOne(CommunityJoinQuery communityJoinQuery, PageOrder pageOrder);
	
	/**
	 * 用户是否加入某个社区
	 * @param communityId
	 * @param userId
	 * @return
	 */
	boolean isJoinCommunity(Integer communityId,Integer userId);
	
	/**
	 * 两个用户是否是邻居
	 * @param userId
	 * @param neighborId
	 * @return
	 */
	boolean isNeighbor(Integer userId,Integer neighborId);
	
	/**
	 * 获取邻居userIds
	 * @param userId
	 * @return
	 */
	List<Integer> getNeighborUserIds(Integer userId);
	
	/**
	 * 两个用户共同的社区
	 * @param userId
	 * @param neighborId
	 * @return
	 */
	List<Integer> queryOurCommunityIds(Integer userId,Integer neighborId);
}